无限 for 循环的实现【Python】 |
您所在的位置:网站首页 › python循环语句for i in range用数组 › 无限 for 循环的实现【Python】 |
for 循环怎么才能无限循环下去呢?
1. 最 low 的方法:一个无限的列表
理解 for 在干什么,在遍历,那我们给他一个无限长的东西,不就无限循环了。 list_ = [None] for _ in list_: list_.append(None) # Other operations. 优点:易于理解,最容易想到的方式缺点:速度慢,占内存,最后肯定会溢出的,其实不是真正意义上的无限。 2. 实现一个无限的迭代器理解 for 的本质,是先获取一个迭代器,再依次调用 next 。那我们自己实现一个迭代器,让它的 next 永远都不不抛出 StopIteration 异常,那不就永远 for 下去了 class MyIter: def __iter__(self): return self def __next__(self): pass for _ in MyIter(): # Other operations. 优点:真正的无限,不浪费内存缺点:依然需要个人手动实现一些东西 3. 使用内置的无限迭代器使用别人已经造好的无限迭代器,避免自己写了 3.1 count from itertools import count for i in count(): print(i) # Other operations. 优点:近似是无限的,不需要手动实现什么,自带自定义初始值、步长的计数缺点:如果时间无限,内存有限,那么可以认为有一天计数的值会非常大,大到计算机放不下,当然不需要等到那一天,只要数字足够大,就会比其他无限迭代器浪费时间 3.2 cycle、repeatcycle from itertools import cycle for _ in cycle((None,)): # Other operations.repeat from itertools import repeat for _ in repeat(None): # Other operations.cycle 和 repeat 都是用来实现重复输出的。cycle 是重复一堆对象,repeat 是重复一个对象。 优点:无需手动实现,真正意义上的无限 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |